.TH std::time_get::date_order,std::time_get::do_date_order 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::time_get::date_order,std::time_get::do_date_order \- std::time_get::date_order,std::time_get::do_date_order

.SH Synopsis
   Defined in header <locale>
   public:                                  \fB(1)\fP
   dateorder date_order() const;
   protected:                               \fB(2)\fP
   virtual dateorder do_date_order() const;

   1) Public member function, calls the protected virtual member function do_date_order
   of the most derived class.
   2) Returns a value of type std::time_base::dateorder, which describes the default
   date format used by this locale (expected by get_date() and produced by
   std::strftime() with format specifier '%x').

   The valid values (inherited from std::time_base) are:

   no_order the format contains variable items (week day, Julian day, etc), or this
            function is not implemented
   dmy      day, month, year (European locales)
   mdy      month, day, year (American locales)
   ymd      year, month, day (Asian locales)
   ydm      year, day, month (rare)

.SH Parameters

   \fI(none)\fP

.SH Return value

   A value of type dateorder.

.SH Notes

   This function is optional, it may return no_order in every case.

.SH Example

   The output below was obtained using clang (libc++).


// Run this code

 #include <iostream>
 #include <locale>

 void show_date_order()
 {
     std::time_base::dateorder d = std::use_facet<std::time_get<char>>(
                                       std::locale()
                                   ).date_order();
     switch (d)
     {
         case std::time_base::no_order:
             std::cout << "no_order\\n";
             break;
         case std::time_base::dmy:
             std::cout << "day, month, year\\n";
             break;
         case std::time_base::mdy:
             std::cout << "month, day, year\\n";
             break;
         case std::time_base::ymd:
             std::cout << "year, month, day\\n";
             break;
         case std::time_base::ydm:
             std::cout << "year, day, month\\n";
             break;
     }
 }

 int main()
 {
     std::locale::global(std::locale("en_US.utf8"));
     std::cout << "In U.S. locale, the default date order is: ";
     show_date_order();

     std::locale::global(std::locale("ja_JP.utf8"));
     std::cout << "In Japanese locale, the default date order is: ";
     show_date_order();

     std::locale::global(std::locale("de_DE.utf8"));
     std::cout << "In German locale, the default date order is: ";
     show_date_order();
 }

.SH Possible output:

 In U.S. locale, the default date order is: month, day, year
 In Japanese locale, the default date order is: year, month, day
 In German locale, the default date order is: day, month, year

.SH See also

   do_get_date extracts month, day, and year from input stream
   \fB[virtual]\fP   \fI(virtual protected member function)\fP
   time_base   defines date format constants
               \fI(class)\fP
